home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / OWLINC.PAK / SPLASHWI.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  4KB  |  160 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // Copyright (c) 1995, 1997 by Borland International, All Rights Reserved
  4. //
  5. //$Revision:   10.7  $
  6. //
  7. // Definition of class TSplashWindow
  8. //----------------------------------------------------------------------------
  9. #if !defined(OWL_SPLASHWI_H)
  10. #define OWL_SPLASHWI_H
  11.  
  12. #if !defined(OWL_LAYOUTWI_H)
  13. #include <owl/layoutwi.h>
  14. #endif
  15.  
  16. #if defined(BI_NAMESPACE)
  17. namespace OWL {
  18. #endif
  19.  
  20. // Generic definitions/compiler options (eg. alignment) preceeding the
  21. // definition of classes
  22. #include <services/preclass.h>
  23.  
  24. class _OWLCLASS TDib;
  25. class _OWLCLASS TPictureWindow;
  26. class _OWLCLASS TStatic;
  27. class _OWLCLASS TGauge;
  28.  
  29. //
  30. // class TSplashWindow
  31. // ~~~~~ ~~~~~~~~~~~~~
  32. // This class creates a layout window that contains a TPictureWindow and
  33. // optionally, a TStatic and a TGauge.
  34. //
  35. // The purpose is to display a temporary window that contains a bitmap
  36. // and other information.
  37. //
  38. // The temporary window can be closed by
  39. //   a mouse click        if the style has CaptureMouse turned on
  40. //   a passage of time    if the TimeOut data member is non-zero
  41. //   explicitly deleting the TSplashWindow or calling its CloseWindow()
  42. //
  43. class _OWLCLASS TSplashWindow : public TLayoutWindow {
  44.   public:
  45.     // Styles for the splash window.
  46.     //
  47.     enum TStyle {
  48.       None          = 0x0000,
  49.       ShrinkToFit   = 0x0001,     // resizes window to fit bitmap
  50.       MakeGauge     = 0x0002,     // display a gauge to indicate progess
  51.       MakeStatic    = 0x0004,     // display a text control
  52.       CaptureMouse  = 0x0008,     // capture mouse clicks
  53.     };
  54.  
  55.     // Constructor/destructor
  56.     //
  57.     TSplashWindow(TDib& dib,
  58.                   int width,
  59.                   int height,
  60.                   int style = None,
  61.                   uint timeOut = 0,       // in milliseconds
  62.                   const char far* title = 0,
  63.                   TModule* module = 0);
  64.    ~TSplashWindow();
  65.  
  66.     // Methods
  67.     //
  68.     void          SetText(const char far* text);
  69.     void          SetPercentDone(int percent);
  70.  
  71.     // Overridden TWindow virtuals
  72.     //
  73.     virtual bool  Create();
  74.  
  75.   protected:
  76.     void          SetupWindow();
  77.     void          CleanupWindow();
  78.  
  79.     // Respond to messages
  80.     //
  81.     void          EvLButtonDown(uint modKeys, TPoint& point);
  82.     void          EvTimer(uint timerId);
  83.  
  84.     // Accessors
  85.     //
  86.     bool          HasStyle(TStyle) const;
  87.     uint          GetStyle() const;
  88.     TStatic*      GetStatic();
  89.     TGauge*       GetGauge();
  90.     uint          GetTimeOut() const;
  91.  
  92.   private:
  93.     uint            Style;
  94.     TStatic*        Static;
  95.     TGauge*         Gauge;
  96.     TPictureWindow* PictWindow;
  97.     uint            TimeOut;
  98.     bool            CapturedMouse;
  99.  
  100.   DECLARE_RESPONSE_TABLE(TSplashWindow);
  101. };
  102.  
  103. // Generic definitions/compiler options (eg. alignment) following the
  104. // definition of classes
  105. #include <services/posclass.h>
  106.  
  107. #if defined(BI_NAMESPACE)
  108. } // namespace OWL
  109. #endif
  110.  
  111. //----------------------------------------------------------------------------
  112. // Inline implementations
  113. //
  114.  
  115. //
  116. // Determine if the splash window has a particular style.
  117. //
  118. inline bool TSplashWindow::HasStyle(TStyle style) const
  119. {
  120.   return ToBool((GetStyle() & style) == (uint)style);
  121. }
  122.  
  123. //
  124. // Return the current style of the splash window.
  125. //
  126. inline uint TSplashWindow::GetStyle() const
  127. {
  128.   return Style;
  129. }
  130.  
  131. //
  132. // Return the static control used by splash window.
  133. // The static control is only created if the style includes MakeStatic.
  134. //
  135. inline TStatic* TSplashWindow::GetStatic()
  136. {
  137.   return Static;
  138. }
  139.  
  140. //
  141. // Return the gauge used by the splash window.
  142. // The gauge control is only created if the style includes MakeGauge.
  143. //
  144. inline TGauge* TSplashWindow::GetGauge()
  145. {
  146.   return Gauge;
  147. }
  148.  
  149. //
  150. // Return the number of milliseconds for the splash window to automatically
  151. // close.
  152. //
  153. inline uint TSplashWindow::GetTimeOut() const
  154. {
  155.   return TimeOut;
  156. }
  157.  
  158.  
  159. #endif // OWL_SPLASHWI_H
  160.